package com.example.hosptial.repository;

import com.example.hosptial.model.enity.Ward;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface WardRepository extends JpaRepository<Ward, Integer> {

    // 根据楼层号查询并按病房号排序
    List<Ward> findByFloorFloorNumOrderByWardNum(Integer floorNum);

    // 根据楼层和病房号查询
    Ward findByFloorFloorNumAndWardNum(Integer floorNum, String wardNum);

    // 查询特定病房的可用床位数
    @Query("SELECT w.availableBeds FROM Ward w WHERE w.wardId = :wardId")
    Integer getAvailableBeds(@Param("wardId") Integer wardId);

    // 更新病房的可用床位数
    @Modifying
    @Query("UPDATE Ward w SET w.availableBeds = :availableBeds WHERE w.wardId = :wardId")
    void updateAvailableBeds(@Param("wardId") Integer wardId, @Param("availableBeds") Integer availableBeds);
}